// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	2/15/2015 4:55:37 PM				
// -----------------------------

#ifndef _ApplicationView_h
#define _ApplicationView_h

#include <agile.h>

using namespace Windows::ApplicationModel;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::ApplicationModel::Activation;
using namespace Windows::UI::Core;
using namespace Platform;

ref class ApplicationView sealed : public IFrameworkView
{
public:

	ApplicationView();

	// IFrameworkView Methods.
	virtual void SetWindow(CoreWindow^ window);
	virtual void Initialize(CoreApplicationView^ applicationView);
	virtual void Uninitialize();

	virtual void Load(String^ entryPoint);
	virtual void Run();

protected:

	// Event Handlers.
	void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args);
	void OnSuspending(Object^ sender, SuspendingEventArgs^ args);
	void OnResuming(Object^ sender, Object^ args);

private:

	Agile<CoreWindow>		m_CoreWindow;

	void OnExiting(Platform::Object ^sender, Platform::Object ^args);
};

#endif